Boosting k-Induction with Continuously-Refined Invariants

نویسندگان

  • Dirk Beyer
  • Matthias Dangl
  • Philipp Wendler
چکیده

k-induction is a promising technique to extend bounded model checking from falsification to verification. In software verification, k-induction works only if auxiliary invariants are used to strengthen the induction hypothesis. The problem that we address is to generate such invariants (1) automatically without user-interaction, (2) efficiently such that little verification time is spent on the invariant generation, and (3) that are sufficiently strong for a k-induction proof. We boost the k-induction approach to significantly increase effectiveness and efficiency in the following way: We start in parallel to k-induction a data-flow-based invariant generator that supports dynamic precision adjustment and refine the precision of the invariant generator continuously during the analysis, such that the invariants become increasingly stronger. The k-induction engine is extended such that the invariants from the invariant generator are injected in each iteration to strengthen the hypothesis. The new method solves the above-mentioned problem because it (1) automatically chooses an invariant by step-wise refinement, (2) starts always with a lightweight invariant generation that is computationally inexpensive, and (3) refines the invariant precision more and more to inject stronger and stronger invariants into the induction system. We present and evaluate an implementation of our approach, as well as all other existing approaches, in the open-source verification-framework CPACHECKER. Our experiments show that combining k-induction with continuously-refined invariants significantly increases effectiveness and efficiency, and outperforms all existing implementations of k-induction-based verification of C programs in terms of successful results.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Combining k-Induction with Continuously-Refined Invariants

Bounded model checking (BMC) is a well-known and successful technique for finding bugs in software. k-induction is an approach to extend BMC-based approaches from falsification to verification. Automatically generated auxiliary invariants can be used to strengthen the induction hypothesis. We improve this approach and further increase effectiveness and efficiency in the following way: we start ...

متن کامل

Refined invariants and TQFT’s from Homfly skein theory

We work in the reduced SU(N,K) modular category as constructed recently by Blanchet. We define spin type and cohomological refinements of the Turaev-Viro invariants of closed oriented 3-manifolds and give a formula relating them to Blanchet’s invariants. Roberts’ definition of the Turaev-Viro state sum is exploited. Furthermore, we construct refined Turaev-Viro and Reshetikhin-Turaev TQFT’s and...

متن کامل

Model Checking C Programs with Loops via k-Induction and Invariants

We present a novel proof by induction algorithm, which combines k -induction with invariants to model check C programs with bounded and unbounded loops. The k -induction algorithm consists of three cases: in the base case, we aim to find a counterexample with up to k loop unwindings; in the forward condition, we check whether loops have been fully unrolled and that the safety property P holds i...

متن کامل

On the Spin-refined Reshetikhin-turaev Su(2) Invariants of Lens Spaces

We give an explicit presentation of the value of the spin-refined ReshetikhinTuraev SU(2) invariants of lens spaces. Using this result, we also present the value of spin-refined Turaev-Viro SU(2) invariants of lens spaces.

متن کامل

Light-Weight Invariant Generation for Software Verification with CPAchecker

This thesis presents a light-weight approach to invariant generation in the context of an implementation of k-induction for software verification within the CPAchecker framework. CPAchecker is a tool for software verification, one of the grand challenges of computing research. Inductive methods to prove the correctness of loops have been applied for years, but rely on manual invariant annotatio...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015